package com.ruoyi.cat.service;

import com.ruoyi.cat.domain.CatTradedetailTable;
import com.ruoyi.cat.domain.DTO.*;
import com.ruoyi.cat.domain.VO.DataScreeningVO;
import com.ruoyi.cat.domain.VO.FinanceVO;
import com.ruoyi.cat.domain.VO.TradedetailTableVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 交易明细Service接口
 * 
 * @author ruoyi
 * @date 2024-12-27
 */
public interface ICatTradedetailTableService 
{
    /**
     * 查询交易明细
     * 
     * @param id 交易明细主键
     * @return 交易明细
     */
    public CatTradedetailTable selectCatTradedetailTableById(Long id);

    /**
     * 查询交易明细列表
     * 
     * @param catTradedetailTable 交易明细
     * @return 交易明细集合
     */
    public List<CatTradedetailTable> selectCatTradedetailTableList(CatTradedetailTable catTradedetailTable);

    /**
     * 新增交易明细
     * 
     * @param catTradedetailTable 交易明细
     * @return 结果
     */
    public int insertCatTradedetailTable(CatTradedetailTable catTradedetailTable);


    public CatTradedetailTable selectCatTradedetailTableByOrderNo(String  orderNo);


    CatTradedetailTable getTradedetailActivityId(Long activityId);

    /**
     * 修改交易明细
     * 
     * @param catTradedetailTable 交易明细
     * @return 结果
     */
    public int updateCatTradedetailTable(CatTradedetailTable catTradedetailTable);


    public int updateCatTradedetailTableOrderNo(CatTradedetailTable catTradedetailTable);

    /**
     * 批量删除交易明细
     * 
     * @param ids 需要删除的交易明细主键集合
     * @return 结果
     */
    public int deleteCatTradedetailTableByIds(Long[] ids);

    /**
     * 删除交易明细信息
     * 
     * @param id 交易明细主键
     * @return 结果
     */
    public int deleteCatTradedetailTableById(Long id);


    public List<TradedetailTableDTO> selectCatTradedetailTableApiList(TradedetailTableVO tradedetailTableVO);



    TotalAmountDTO getTotalAmout(Long userId);


    List<CatTradedetailTable> getTaskJF(CatTradedetailTable catTradedetailTable);


    List<AwesomeTeammateDTO> getAwesomeTeammate(DataScreeningVO dataScreeningVO);


    AwesomeTeammateDTO getUserIdData(DataScreeningVO dataScreeningVO);


    AwesomeTeammateDTO getUserIdTest(DataScreeningVO dataScreeningVO);


    AwesomeTeammateDTO countByReferenceId(Long referenceId);


    List<FinanceDTO> selectTable(FinanceVO financeVO);

    ExpensesDTO getTradeNumData(FinanceVO financeVO);


    List<TradeNumGroupDTO> getTradeNumGroupBy(FinanceVO financeVO);

    public int updateCatTradedetailAndUserId(CatTradedetailTable catTradedetailTable);



}
